<?php

/**
 * @author Paweł Napieracz
 * @version 1.0
 */
class Modul_Admin_Link_Edycja extends Modul_Admin_Abstract {

    public function inicjalizuj() {
        $this->tytul = 'Edycja linków';

        if (isset($this->param['akcja']) &&
                $this->param['akcja'] == 'edytuj') {
            $this->edytuj();
        } else if (isset($this->param['akcja']) &&
                $this->param['akcja'] == 'dodaj') {
            $this->dodaj();
        } else if (isset($this->param['akcja']) &&
                $this->param['akcja'] == 'usun') {
            $this->usun();
        }
    }

    public function prawa() {
        if (isset($this->uzytkownik['uprawienia']) &&
                !in_array('cms_link', $this->uzytkownik['uprawienia'])) {
            $this->zakoncz('/cms/logowanie/akcja,blad,info,3.html');
        }
        parent::prawa();
    }

    private function edytuj() {
        $id = isset($this->param['id']) ? $this->param['id'] : $_POST['id'];
        if (!is_numeric($id)) {
            die();
        }

        $tab = new AutoDB('link', 'id');
        $link = $tab->Get($id);

        $this->daneTPL['form'] =
                Form_Link::generuj($link, '/cms/link/edycja/akcja,edytuj.html');

        if (isset($_POST['nazwa'])) {
            $bledy = $this->waliduj();
            if (Form_Valid::isValid($bledy)) {

                $pola = array(
                    'nazwa' => $_POST['nazwa'],
                    'url' => $_POST['url'],
                    'data_od' => $_POST['data_od'],
                    'data_do' => $_POST['data_do'],
                    'status' => $_POST['status']
                );
                $link->SetAll($pola)->Save();
                $this->zakoncz('/cms/link/');
            } else {
                $this->daneTPL['bledy'] = $bledy;
            }
        }
    }

    private function dodaj() {
        $tab = new AutoDB('link');
        $link = $tab->Create();

        $this->daneTPL['form'] =
                Form_Link::generuj($link, '/cms/link/edycja/akcja,dodaj.html');

        if (isset($_POST['nazwa'])) {
            $bledy = $this->waliduj();
            if (Form_Valid::isValid($bledy)) {

                $pola = array(
                    'nazwa' => $_POST['nazwa'],
                    'url' => $_POST['url'],
                    'data_od' => $_POST['data_od'],
                    'data_do' => $_POST['data_do'],
                    'status' => $_POST['status']
                );
                $link->SetAll($pola)->Save();
                $this->zakoncz('/cms/link/');
            } else {
                $this->daneTPL['bledy'] = $bledy;
            }
        }
    }

    private function waliduj() {
        if (Form_Valid::isEmpty(Form_Valid::getFormValue('nazwa'))) {
            $bledy[] = "Musisz podać nazwę, która będzie wyświetlana";
        } else if (!Form_Valid::checkLength(Form_Valid::getFormValue('nazwa'), 255, 3)) {
            $bledy[] = "Nazwa jest dłuższa niż 255 znaków lub skłąda się z mniej niż 3 znaków!";
        }

        if (Form_Valid::isEmpty(Form_Valid::getFormValue('url'))) {
            $bledy[] = "Url nie może być pusty";
        } else if (!Form_Valid::isInternetURL(Form_Valid::getFormValue('url'))) {
            $bledy[] = "To nie jest prawidłowy adres url! Adres powinien zaczynać się od http(s)://";
        }

        if (Form_Valid::getFormValue('data_do') != ''
                && Form_Valid::getFormValue('data_od') != '' && strtotime(Form_Valid::getFormValue('data_do'))
                - strtotime(Form_Valid::getFormValue('data_od')) < 0) {
            $bledy[] = "Nie możesz ustawić daty rozpoczęcia wyświetlania późniejszej niż daty zakończenia wyświetlania.";
        }

        return $bledy;
    }

    private function usun() {
        if (!isset($this->param['id']) || !is_numeric($this->param['id'])) {
            die();
        }
        $tab = new AutoDB('link', 'id');
        $user = $tab->Get($this->param['id']);
        $user->Set('status', 0);
        $user->Save();
        die();
    }

}

?>
